#include <stdio.h> //    包含标准库的信息。

#define MAXLINE 1000 //    每行最大字符数为1000个。

#define BR 10 //    十个字符换一行。

int getstr(char line[], int maxline);

int main() //    定义名为main的函数，它不接受参数值。
{
    int len;

    char line[MAXLINE];

    while ((len = getstr(line, MAXLINE)) > 0)
    {
        printf("%s\n", line);
    }

    getchar(); //    防止控制台一闪而过，需要接受任意字符后在关闭控制台。
    return 0;  //    向执行环境返回一个整形，0代表执行成功。
}

int getstr(char s[], int lim)
{
    int c, i, j;
    c = i = j = 0;
    while (i < lim - 1 && (c = getchar()) != EOF && c != '\n')
    {
        if (c == '\n')
        {
            s[i++] = c;
        }
        else if ((i - j) % BR + 1 == BR) //    需要折行。
        {
            if (c != '\t' && c != ' ' && i != BR) //    如果需要换行的位置是空格或者制表符，则忽略这个字符。
            {
                s[i++] = c;
                s[i++] = '\n';
                j++;
            }
        }
        else
            s[i++] = c;
    }
    if (s[i - 1] == '\n')
        s[i - 1] = '\0'; //    若上一个字符是换行符则不在执行换行。
    else
        s[i] = '\0';
    return i;
}